
/**
 * @name Ccay.task.Import2
 * @description Classify 视图页面控制器
 * @author chaowangbang
 * @since 2011-11-29
 * @param page
 *            该参数为控制器对象的内部别名，方便控制器内部的调用。外部访问不到，外部只能通过Ccay.lookup.ListClassify访问其方法或属性
 */
//首字母大写，修改变量名,$变成$S
Ccay.Module.define("Ccay.task.Import2", function(page, $S) {
			/**
			 * Grid初始化
			 */
			page.ready = function() {
				$S("#ccay-operate").ccayToolbar({
							items : [{
								type : "imgBtn",
								icon : "search",
								text : "ccay.common.button.search",
								css : "default", // 回车搜索的按钮的class
								attr : {
									id : "btnSearch"
								}
							}, {
								type : "imgBtn",
								icon : "reset",
								text : "ccay.common.button.reset",
								css : "reset",
								attr : {
									id : "reset"
								}
							}]
						});
				var gridOptions = {
					height : 300,
					percentWidth : true,
					wrap : true,
					minHeight : 24,
					// 设置igrid缓存数据
					cacheData : true,
					// 设置缓存key值
					cacheKey : ["taskId"],
					// 分组显示
					rowRender : "group",
					rowRenderOp : {
						simpleSort : true,
						spareFields : ["creationDate", "typeId", "importStatus"]
					},
					customSetting: true,
					// 列设置
					columns : [{
						field : 'owner',
						header : "ccay.common.label.operationPersion",
						cssName : "center",
						content : "${#showUserInfo(owner,data)}",
						width : "6%"
					}, {
						field : 'fileName',
						header : "ccay.task.label.importFileName",
						cssName : "left",
						renderer : Ccay.UI.Renderer.create(fileNameDownLoadRenderer),
						width : "12%"
					}, {
						field : 'typeId',
						header : "ccay.task.label.importTaskType",
						cssName : "left",
						width : "7%"
					}, {
						field : 'importStatus',
						header : "ccay.task.label.importStatus",
						cssName : "center",
						width : "6%",
						content : "${#getStatus(data)}",
						getGroupValue : function(value, record) { // 渲染分组操作的组名
							//加注释
							if (value == "0") {
								return $i18n("ccay.common.message.waiting");
							} else if (value == "1") {
								return $i18n("ccay.common.message.inProcess");
							} else if (value == "2") {
								return $i18n("ccay.common.message.succeed");
							} else if (value == "3") {
								return $i18n("ccay.common.message.partialSucceed");
							} else if (value == "4") {
								return $i18n("ccay.common.message.failed");
							}
							return "";
						}
					}, {
						field : 'fileSize',
						hidden : true,
						header : "ccay.task.label.importFileSize",
						cssName : "right",
						content : "${fileSizeRender(data)}",
						width : "10%"
					}, {
						field : 'operateQty',
						hidden : true,
						header : "ccay.task.label.importOperateQty",
						cssName : "right",
						width : "10%",
						type : "int"
					}, {
						field : 'importedQty',
						hidden : true,
						header : "ccay.task.label.importedQty",
						cssName : "right",
						width : "10%",
						type : "int"
					}, {
						field : 'creationDate',
						group : true,
						width : "6%",
						header : "ccay.task.label.importCreatedTime",
						cssName : "center",
						content : "${#thisToDateBefore(data.creationDate)}",
						getGroupValue : function(value, record) {// 渲染分组操作的组名
							return value.toDate().getUTCTime().format();
						}
					}, {
						field : 'runStartTime',
						hidden : true,
						width : "10%",
						header : "ccay.task.label.importRunStartTime",
						cssName : "center",
						content : "${#thisToDateBefore(data.runStartTime)}"
					}, {
						field : 'consumeTime',
						hidden : true,
						header : "ccay.task.label.importConsumeTime",
						type : "int",
						cssName : "right",
						width : "10%"
					}],
					// 设置igrid的ajax请求参数，url属性获取数据源的链接地址
					ajax : {
						url : 'services/ccay/task/import/list/page/monitor/{0}/{1}'
					},
					operation : {
						search : {
							// 查询按钮id选择器
							btn : '#btnSearch',
							// 查询条件区域id选择器
							panel : '#importCondForm',
							// 查询请求地址
							url : 'services/ccay/task/import/list/page/monitor/{0}/{1}'
						}

					}
				}
				// 初始化igrid
				$S("#taskImportGrid").igrid(gridOptions);
			};

			page.listImportStatus = function() {
				return [{
					value : 0,
					text : $i18n("ccay.common.message.waiting")
				}, {
					value : 1,
					text : $i18n("ccay.common.message.inProcess")
				}, {
					value : 2,
					text : $i18n("ccay.common.message.succeed")
				}, {
					value : 3,
					text : $i18n("ccay.common.message.partialSucceed")
				}, {
					value : 4,
					text : $i18n("ccay.common.message.failed")
				}];
			}

			/**
			 * 清除用户信息
			 */
			page.clearUserId4ldap = function(obj) {
				if (!obj.value) {
					$("input:hidden[name='createdBy']").val("");
				}
			}

			/** grid的delete按钮 */
			page.del = function() {
				var grid = "#taskImportGrid";
				var records = $(grid).manager().getSelectedRecords();
				var url = "services/ccay/task/import/d/list";
				if (records.length > 0) {
					Ccay.UI.confirm("ccay.common.message.confdel", function(result) {
								if (result) {
									Ccay.doPut(url, records, function() {
										// 调用刷新grid的方法
										$(grid).manager().reload(true, true);
											// $("#btnSearch").click();
										});
								}
							});
				} else {
					Ccay.UI.showMessage("ccay.common.message.selectedRecords", "warn");
				}
			}

			function userId2Account(value, record, columnObj, grid, colNo, rowNo) {
				return "<a title={0} class='init PersonInfo' id='userAccount'  scope='intranet'>{1}</a>".formatValue(value, value);
			}

			// 设置任务状态 （0:waiting ,1:inProcess , 2:succeed ,3:partialSucceed,4: Failed )
			getStatus = function(record) {
				var dis = "", msg = "";
				var value = record.importStatus;
				switch (value) {
					case "0" :
						dis = $i18n("ccay.common.message.waiting");
						break;

					case "1" :
						dis = $i18n("ccay.common.message.inProcess");
						break;
					case "2" :
						var succeedShow = $i18n("ccay.common.message.succeed");
						var succeedSize = record.fileSize ? Ccay.Format.toFileSize(record.fileSize) : "0";
						var succeedTitle = $i18n("ccay.task.label.importFileSize")+ ":" + succeedSize +"\n"+ $i18n("ccay.task.label.importOperateQty") + ":" + record.operateQty + "\n" + $i18n("ccay.task.label.importedQty") + ":" + record.importedQty;
						if (record.remark != null) {// 此处是为了让下载图标和导入状态的信息显示到一行
							dis = "<div title='"+succeedTitle+"' ><font>"+succeedShow+"</font><a href='servlet/download?dlType=Excel&excelId="+record.taskId+"&execFlag=IMP&remark=true' class = 'ccay-icon download' title='"+$i18n("ccay.integration.label.processErrorDownload")+"' ></a></div>";
						} else {
							dis = "<div title='"+succeedTitle+"' ><font>"+succeedShow+"</font></div>";
						}
						break;
					case "3" :
						var succeedShow = $i18n("ccay.common.message.partialSucceed");
						var succeedSize = record.fileSize ? Ccay.Format.toFileSize(record.fileSize) : "0";
						var succeedTitle =$i18n("ccay.integration.label.processErrorDownload")+"\n"+ $i18n("ccay.task.label.importFileSize") + ":" + succeedSize + "\n" + $i18n("ccay.task.label.importOperateQty") + ":" + record.operateQty + "\n" + $i18n("ccay.task.label.importedQty") + ":" + record.importedQty;
						if (record.remark != null) {
							dis = "<div title='"+succeedTitle+"'><font  color='red' >"+succeedShow+"</font></a></div>";
						} else {
							dis = "<div title='"+succeedTitle+"' >"+succeedShow+"</div>";
						}
						break;
					case "4" :
						dis = $i18n("ccay.common.message.failed");
						break;
					default :
				}
				var msg = record.errorMsg;
				if (msg != null) {
					return setShowError(msg, dis);
				}
				return dis;
			};

			setShowError = function(msg, dis) {
				msg = msg.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/'/g, '&acute;').replace(/"/g, '&quot;').replace(/(^\s*)|(\s*$)/g, "").replace(/\n/g, "");
				
				return"<div title='" + $i18n("ccay.integration.label.processError") + "' ><a style='cursor:pointer' onclick=\"Ccay.UI.showMessage('" + msg + "','error')\"><font color='red' style='text-decoration: underline'>" + dis + "</font></a><a onclick=\"Ccay.UI.showMessage('" + msg + "','error')\" class='ccay-icon warning'></a></div>";
			};

			// fileSize的规格化
			fileSizeRender = function(data) {
				return Ccay.Format.toFileSize(data.fileSize);
			};

			// 对时间进行格式化处理
			thisToDateBefore = function(data) {
				return Ccay.Format.toDateBefore(data && data.toDate().getUTCTime());
			};

			function fileNameDownLoadRenderer(value, record) {
				return record.fileName;
			}
			
			//人员信息点击查看明细的渲染
			showUserInfo = function(value,data){
				return Ccay.UI.button(data.owner? data.owner :"","Ccay.Component.popUserInfo('{0}')".formatValue(data.owner),"","link");
			};

		});
